Perform a 1D inverse Fast Fourier Transform on a signal
This function takes a signal and performs a inverse fast Fourier Transform using the specified method. The available methods are:
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | DIMENSION(:) | :: | signal | ||
character(len=*), | intent(in) | :: | method | |||
integer, | intent(in), | optional | :: | threads |
FUNCTION IFFT_1D(signal, method, threads) RESULT(result) COMPLEX(dp), DIMENSION(:), INTENT(INOUT) :: signal CHARACTER(*), INTENT(IN) :: method INTEGER, OPTIONAL, INTENT(IN) :: threads COMPLEX(dp), DIMENSION(SIZE(signal)) :: result IF(method == "NAFPack_IFFT_1D")THEN result = NAFPack_IFFT_1D(signal) ELSE IF(method == "FFTW_IFFT_1D" .AND. .NOT. PRESENT(threads))THEN result = FFTW_IFFT_1D(signal) ELSE IF (method == "FFTW_IFFT_1D" .AND. PRESENT(threads))THEN result = FFTW_IFFT_1D_threads(signal, threads) ELSE STOP "ERROR : Wrong method for IFFT_1D" END IF END FUNCTION IFFT_1D